package com.ruoyi.system.mapper;

import java.util.Date;
import java.util.List;
import com.ruoyi.system.domain.CrmUser;
import com.ruoyi.system.domain.CrmUserRecord;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author ruoyi
 * @date 2020-10-12
 */
public interface CrmUserMapper
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public CrmUser selectCrmUserById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param CrmUser 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<CrmUser> selectCrmUserList(CrmUser CrmUser);
    public List<CrmUser> selectCrmUserListNew(CrmUser crmUser);
    /**
     * 查询时间段内的客户
     * @param startTime
     * @param endTime
     * @param createUser
     * @return
     */
    public List<CrmUser> selectCrmUserListByTime(@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("createUser") Long createUser);
    public List<CrmUser> selectCrmUserListByNoTime(@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("createUser") Long createUser);


     public List<CrmUser> selectCrmUserListByBirthDayByDay(@Param("day") Integer day,@Param("createUser") Long createUser);

     /**
     * 本周 下周 本月 下月
     * @param createUser
     * @return
     */
    public List<CrmUser> selectCrmUserListByCurDayBirthDayTime(@Param("createUser") Long createUser);
    public List<CrmUser> selectCrmUserListByNextWeekBirthDayTime(@Param("createUser") Long createUser);
    public List<CrmUser> selectCrmUserListByCurWeekBirthDayTime(@Param("createUser") Long createUser);
    public List<CrmUser> selectCrmUserListByCurMonthBirthDayTime(@Param("createUser") Long createUser);
    public List<CrmUser> selectCrmUserListByNextMonthBirthDayTime(@Param("createUser") Long createUser);

    /**
     * 新增【请填写功能名称】
     * 
     * @param CrmUser 【请填写功能名称】
     * @return 结果
     */
    public int insertCrmUser(CrmUser CrmUser);

    /**
     * 批量处理
     * @param list
     * @return
     */
    public int batchInsertCrmUser(List<CrmUser> list);
    /**
     * 修改【请填写功能名称】
     * 
     * @param CrmUser 【请填写功能名称】
     * @return 结果
     */
    public int updateCrmUser(CrmUser CrmUser);

    /**
     * 删除【请填写功能名称】
     * 
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCrmUserById(Long id);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCrmUserByIds(Long[] ids);

    /**
     * 根据id查集合
     * @param cusIds
     * @return
     */
    public List<CrmUser> selectCrmUserByIds(@Param("cusIds") List<Long> cusIds, @Param("CrmUser") CrmUser CrmUser);

}
